package com.pactera.integral.service;

import java.util.List;
import java.util.Map;

import org.springframework.data.domain.Pageable;

import com.pactera.integral.common.repository.QueryResult;
import com.pactera.integral.common.repository.ResultMap;
import com.pactera.integral.entity.UserAdditionalScore;

public interface UserAdditonalScoreService {

	public Boolean addScore(String staffId, UserAdditionalScore userAdditionalScore);

	public Boolean submitScore(List<UserAdditionalScore> list) throws Exception;

	public Boolean submitAllScorebyAdmin(String staffId);

	public List<ResultMap<String, Object>> getAdditionalScoreList(String status, String userId);

	public List<ResultMap<String, Object>> getUserId(String status, String staffId);

	public List<ResultMap<String, Object>> getAdditionalScoreDetail(String scoreId);

	public List<ResultMap<String, Object>> getApplyHistory(String staffId, String year, String month);

	/**
	 * 获取所有额外分项的信息
	 * 
	 * @param scoreType
	 */
	public List<ResultMap<String, Object>> getAllScoreList(String scoreType, String category);

	/**
	 * 查看终审积分列表
	 * 
	 * @param paramMap
	 * @param page
	 * @return
	 */
	public QueryResult<ResultMap<String, Object>> searchAdditionalScore(Map<String, Object> paramMap, Pageable page);

	/**
	 * 查看用户终审积分明细
	 * 
	 * @param paramMap
	 * @param pageable
	 * @return
	 */
	public QueryResult<ResultMap<String, Object>> searchAdditionalScoreDetailed(Map<String, Object> paramMap,
			Pageable pageable);

	/**
	 * 修改终审积分
	 * 
	 * @param userAdditionalScore
	 * @return
	 */
	public Boolean updateAuditScore(UserAdditionalScore userAdditionalScore);

	/**
	 * 查看终审积分明细
	 * 
	 * @param paramMap
	 * @param pageable
	 * @return
	 */
	public QueryResult<ResultMap<String, Object>> searchAuditScoreDetailed(Map<String, Object> paramMap,
			Pageable pageable);
}
